package com.jmp.base;

import com.jmp.base.dto.*;
import one.stand.model.ResultModel;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

public interface GoodsApi {
    /**
     * 保存
     */
    @PostMapping("/goods/save")
    ResultModel save(@RequestBody GoodsSaveRequest request);

    /**
     * 保存
     */
    @PostMapping("/goods/save2")
    ResultModel save2(@RequestBody GoodsSaveRequest request);

    @PostMapping("/goods/remove")
    ResultModel remove(@RequestBody GoodsRemoveDto request);

    /**
     * 导入商品
     */
    @PostMapping("/goods/save/import")
    ResultModel saveImport(@RequestBody GoodsSaveImportRequest request);

    /**
     * 导入商品-删除
     */
    @PostMapping("/goods/delete/import")
    ResultModel deleteImport(@RequestBody GoodsDeleteImportRequest request);

    /**
     * 一键隐藏所有商品价格
     */
    @PostMapping("/goods/price/hide")
    ResultModel priceHide(@RequestBody GoodsPriceHideRequest request);

    /**
     * 一键显示所有商品价格
     */
    @PostMapping("/goods/price/show")
    ResultModel priceShow(@RequestBody GoodsPriceHideRequest request);

    /**
     * 价格备注
     */
    @PostMapping("/goods/price/remark")
    ResultModel priceRemark(@RequestBody GoodsPriceRemarkRequest request);

    /**
     * 主推
     */
    @PostMapping("/goods/main/push")
    ResultModel mainPush(@RequestBody GoodsMainPushRequest request);

    /**
     * 产品显示
     */
    @PostMapping("/goods/show")
    ResultModel show(@RequestBody GoodsShowRequest request);

    /**
     * 产品隐藏
     */
    @PostMapping("/goods/hide")
    ResultModel hide(@RequestBody GoodsHideRequest request);

    /**
     * 更新VR
     */
    @PostMapping("/goods/vr/update")
    ResultModel vrUpdate(@RequestBody GoodsVrUpdateRequest request);

    /**
     * 更新Model
     */
    @PostMapping("/goods/model/update")
    ResultModel modelUpdate(@RequestBody GoodsModelUpdateRequest request);

    /**
     * 平台分类-更新
     */
    @PostMapping("/goods/platform/type/update")
    ResultModel platformTypeUpdate(@RequestBody GoodsPlatformTypeUpdateRequest request);

    /**
     * 平台分类-取消
     */
    @PostMapping("/goods/platform/type/delete")
    ResultModel platformTypeDelete(@RequestBody GoodsPlatformTypeDeleteRequest request);


    /**************************** 拼团商品 **************************************/

    /**
     * 拼团商品: 保存|更新
     */
    @PostMapping("/goods/group/save")
    ResultModel groupSave(@RequestBody GoodsGroupSaveDto request);

    /**
     * 拼团商品: 上架
     */
    @PostMapping("/goods/group/up")
    ResultModel groupUp(@RequestBody GoodsGroupUpDto request);

    /**
     * 拼团商品: 下架
     */
    @PostMapping("/goods/group/down")
    ResultModel groupDown(@RequestBody GoodsGroupInfoDto request);

    /**
     * 拼团商品: 删除
     */
    @PostMapping("/goods/group/remove")
    ResultModel groupRemove(@RequestBody GoodsGroupInfoDto request);

    /**
     * 拼团商品: 信息
     */
    @PostMapping("/goods/group/info")
    ResultModel<GoodsGroupInfoVo> groupInfo(@RequestBody GoodsGroupInfoDto request);

    /**
     * 拼团商品: 管理列表
     */
    @PostMapping("/goods/group/list")
    ResultModel<GoodsGroupListVo> groupList(@RequestBody GoodsGroupListDto request);
}
